package io.mio.transport.server;

import io.mio.transport.codec.MioTcpMessage;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;

public class MioServerHandler extends ChannelInboundHandlerAdapter {

    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        MioTcpMessage body = (MioTcpMessage) msg;
        System.out.println("Server接受的客户端的信息 :" + body.toString());

        // 会写数据给客户端
        String headerStr = "这是响应头内容";
        String contentStr = "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容" +
                "这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容这是响应体内容";
        MioTcpMessage response = new MioTcpMessage(headerStr.getBytes(), contentStr.getBytes());
        ctx.writeAndFlush(response);
    }

    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        ctx.close();
    }

}